package com.itheima.lambda.test4;

import java.util.Random;

public class RandomNumHandlerDemo {
    /*
        1. 首先存在一个接口（RandomNumHandler）
        2. 在该接口中存在一个抽象方法（getNumber），该方法是无参数但是有返回值
        3. 在测试类（RandomNumHandlerDemo）中存在一个方法（useRandomNumHandler）
                方法的的参数是RandomNumHandler类型的
                在方法内部调用了RandomNumHandler的getNumber方法
     */
    public static void main(String[] args) {
        //接口类型 变量名 = 实现类对象
        //接口多态
        RandomNumHandler number = new RandomNumHandler() {
            @Override
            public int getNumber() {
                Random r = new Random();
                int num = r.nextInt(31) + 20; //20~50
                return num;
            }
        };
        int num = number.getNumber();
        System.out.println("num = " + num);
        System.out.println("----------");

        //接口类型 变量名 = Lambda表达式整体充当接口的实现类对象
        RandomNumHandler number1 = ()->10;
        int number2 = number1.getNumber();
        System.out.println("number2 = " + number2);
    }
}

interface RandomNumHandler {
    int getNumber();
}



